cddde85a681ba2ecdc8a142481f983cf50221ddf,platform/platform-impl/src/com/intellij/openapi/editor/actions/PageDownWithSelectionAction.java,Handler,execute,#Editor#Caret#DataContext#,41
Before Change
@Override
public void execute(Editor editor, @NotNull Caret caret, DataContext dataContext) {
if (editor.isColumnMode() && editor.getCaretModel().supportsMultipleCarets()) {
int lines = editor.getScrollingModel().getVisibleArea().height / editor.getLineHeight();
Caret currentCaret = caret;
for (int i = 0; i < lines; i++) {
currentCaret = currentCaret.clone(false);
if (currentCaret == null) {
break;
}
After Change
public static class Handler extends EditorActionHandler {
@Override
public void execute(final Editor editor, @Nullable Caret caret, DataContext dataContext) {
if (!editor.getCaretModel().supportsMultipleCarets()) {
EditorActionUtil.moveCaretPageDown(editor, true);
return;
}
if (editor.isColumnMode()) {
int lines = editor.getScrollingModel().getVisibleArea().height / editor.getLineHeight();
Caret currentCaret = caret == null ? editor.getCaretModel().getPrimaryCaret() : caret;
for (int i = 0; i < lines; i++) {
if (!EditorActionUtil.cloneOrRemoveCaret(editor, currentCaret, false)) {
break;
}
currentCaret = editor.getCaretModel().getPrimaryCaret();
}
}
else {
if (caret == null) {
editor.getCaretModel().runForEachCaret(new CaretAction() {
@Override
public void perform(Caret caret) {
EditorActionUtil.moveCaretPageDown(editor, true);
}
});
}
else {
// assuming caret is equal to CaretModel.getCurrentCaret()